package com.oop.ch02;

/**
 * 如何从现实生活中找对应的类
 * 1、找到类的种类
 * 2、找到类的属性
 * 3、找到类的行为
 * @author Administrator
 */
public class Cat {
	/*
		封装：必须要有属性
		1、*所有的属性私有化private
		2、*对所有的属性生成get/set方法 用public来修饰
		3、在需要添加业务处理时，在set或者get里面添加访问控制(好处)
	 */
	//昵称
	private String name;
	//性别
	private String sex;
	//年龄
	private int age;
	//血统
	private String type;
	//体重
	private double weight;
	//...
	
	public String getName(){
		return this.name;
	}
	public void setName(String name){
		this.name=name;
	}
	
	public String getSex() {
		return sex;
	}
	
	public void setSex(String sex) {
		this.sex = sex;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		//可以方便的添加访问控制
		if(age<=0){
			age=1;
		}
		this.age = age;
	}
	
	public String getType() {
		return type;
	}
	
	public void setType(String type) {
		this.type = type;
	}
	
	public double getWeight() {
		return weight;
	}
	
	public void setWeight(double weight) {
		this.weight = weight;
	}
	
	/*
		构造方法：
		1、*要有public来修饰
		2、*构造方法的名称和类的名称完全相同
		3、可以有参数
		4、一个类如何写了有参数的构造方法，那么建议写一个无参数的构造方法
	 */
	
	//无参构造方法
	public Cat(){}
	
	public Cat(String name) {
		this.name = name;
	}
	
	//有参数的构造方法
	public Cat(String name, String sex, int age, String type, double weight) {
		this.name = name;
		this.sex = sex;
		this.age = age;
		this.type = type;
		this.weight = weight;
	}
	
	//自我介绍的方法
	//主人你好，我是可爱的旺财，今年2岁了，我是一只雌性的哈士奇，体重10.3公斤
	public void print(){
		System.out.println("主人你好，我是可爱的"+this.getName()+"，今年"+age+"岁了，我是一只"+sex+"的"+type+"，体重"+weight+"公斤");
	}
}
